package com.example.limit.aspect;

import com.example.limit.fallback.DefaultRateLimiterHandler;
import com.example.limit.fallback.RateLimiterHandler;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RateLimit {

    String module();

    Class<? extends RateLimiterHandler> fallback() default DefaultRateLimiterHandler.class;

}